【Informatica CDGC】Redshiftで作成したViewはどのようにデータカタログCDGCで表示されるのか確認してみた

【Informatica CDGC】Redshiftで作成したViewはどのようにデータカタログCDGCで表示されるのか確認してみた

InformaticaのデータカタログCDGCではRedshift Viewも問題なくメタデータ抽出が可能です。
Clock Icon2025.01.01

はじめに

こんにちは、データ事業本部の渡部です。

今回はInformaticaのデータカタログ「Cloud Data Governance and Catalog(以降、CDGC)」でRedshiftのViewがどのように表示されるのか確認してみました。

ここ数年でAWSはZero-ETLやS3 Auto Copyなど、いわゆるETLを作成する必要なくデータ連携をマネージドで行ってくれる機能を出しています。
これらの機能はデータを複製することに特徴をもったサービスであるため、分析用にデータ加工をしてデータマートを作成したい際は今までどおりETLでテーブルを作成するか、Viewを作成する必要があります。
そこで今回はInformatica LessなView作成であっても、問題なくデータカタログ上にリネージュをはじめとしたメタデータが表示されているか 確認していこうと思います。

結論!

Viewは想定どおりにリネージュをはじめメタデータが取得できていました。
マテリアライズドビューも問題なくデータカタログ化できました。

検証してみる

View作成

今回検証に使用するソーステーブルは、以下検証で使用したテーブルと同じものを複製して使用します。

https://dev.classmethod.jp/articles/informatica-cdgc-lineage-difference-default-sql/

Viewの参照テーブルの定義とデータは以下のとおりです。

-- ソーステーブル1: 顧客テーブル
CREATE TABLE dwh.customers_view (
    customer_id INTEGER PRIMARY KEY,
    customer_name VARCHAR(100),
    age INTEGER,
    created_at TIMESTAMP
);

-- ソーステーブル2: 購入テーブル
CREATE TABLE dwh.purchases_view (
    purchase_id INTEGER PRIMARY KEY,
    customer_id INTEGER,
    amount DECIMAL(10,2),
    created_at TIMESTAMP
);

-- ソーステーブル1のサンプルデータ
INSERT INTO dwh.customers_view (customer_id, customer_name, age, created_at) VALUES
(1, '山田太郎', 25, '2023-01-01 10:00:00'),
(2, '鈴木花子', 35, '2023-01-01 10:15:00'),
(3, '佐藤次郎', 45, '2023-01-01 10:30:00'),
(4, '田中明子', 25, '2023-01-01 10:45:00');

-- ソーステーブル2のサンプルデータ
INSERT INTO dwh.purchases_view (purchase_id, customer_id, amount, created_at) VALUES
(1, 1, 1000, '2023-01-01 11:00:00'),
(2, 2, 2000, '2023-01-01 11:15:00'),
(3, 3, 3000, '2023-01-01 11:30:00'),
(4, 1, 1500, '2023-01-01 11:45:00');

以下の定義でViewを作成しました。

create view purchase_summary_view as
SELECT 
    p.customer_id as customer_id
    ,SUM(p.amount) as total_amount
    ,sysdate as created_at
FROM
    dwh.purchases p
LEFT OUTER JOIN dwh.customers c
    ON c.customer_id = p.customer_id
GROUP BY 
   p.customer_id
;

CDGCでの表示確認

Viewの作成前、ソーステーブルをCDGCで確認してみました。
ソーステーブル用に用意したcustomers_viewpurchases_viewどちらも上流下流へのリネージュは表示されいない状態です。

貼り付けた画像_2024_12_31_16_51

貼り付けた画像_2024_12_31_16_51-2

Viewを作成、再度RedshiftをスキャンしてCDGCを確認してみました。

customers_viewpurchases_viewどちらも下流に作成したViewがリネージュで表示されています。
貼り付けた画像_2025_01_01_1_05
貼り付けた画像_2025_01_01_1_06

作成したViewpurchases_summary_viewを中心に表示してみると、2つのソーステーブルが正しくリネージュ上に表示されていることが確認できました。

貼り付けた画像_2025_01_01_1_07

カラムレベルでも使用しているカラムが表示されていますね。

貼り付けた画像_2025_01_01_1_07-2

InformaticaのETL(Cloud Data Integration)を使用して作成したテーブルにはなかったタブでコードというのがありました。こちらではDDLが確認できました。
どのようにViewが作成されているのか一目でわかるのが便利ですね。

貼り付けた画像_2025_01_01_1_07-3

タブを一通り見てみましたが、ViewだからとかInformaticaのETLを使用していないからとかのメタデータ抽出の少なさはなさそうですね

少し気になったので、試しにマテリアライズドビューを作成してみました。
するとこちらはソーステーブルは正しく表示されていたのですが、ストアドプロシージャまでもリネージュに表示されていました。

貼り付けた画像_2025_01_01_1_35

調べてみるとマテリアライズドビューはストアドプロシージャが裏で動いているようですね。
データリフレッシュをする必要があることを考えると納得がいくのですが、いい勉強になりました。

https://blaqfireroundup.wordpress.com/2020/03/03/redshift-materialized-views/

なおストアドプロシージャまではリネージュ表示しなくても、、という場合は、メタデータコマンドセンターで取得するメタデータをフィルタするとよいでしょう。
メタデータを除外ストアドプロシージャを選択すればOKです。

貼り付けた画像_2025_01_01_1_40

マテリアライズドビューも問題なくメタデータ抽出可能ということで、最近のアップデートでZero-ETLとの機能強化もあったマテリアライズドビュー活用の追い風となりそうですね。

https://dev.classmethod.jp/articles/amazon-redshift-refresh-mvs-zero-etl-integrations/

まとめ

以上、検証でした。
CDGCはViewであってもしっかりリネージュをはじめとしたメタデータ抽出ができていましたね。
Glueやdbtといったデータソースにも対応しているため、Informaticaを使用していない場合でも問題なくデータカタログの一選択肢とできそうです。

なおどのデータソースが対応しているか、また何のオブジェクト(テーブルとかViewとか)をメタデータとして読み取れるか、という情報はInformaticaの公式ドキュメントに記載があります。

https://docs.informatica.com/

Informaticaアカウントを登録する必要がありますが、Metadata Command Centerのドキュメントから確認可能です。
画面を触るだけでは読み取れない情報は多くあるため、ドキュメントを参照しながらInformaticaのデータカタログを触ってみるのが最善となります。

以上、どなたかのご参考になれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.